<?php
class advertisementController extends Model {
    protected $validation=true;
    protected $error;
        public function init(){
            $error=new stdClass();
            $this->disableTemplate();
            $this->disableView();
            //$user=new Users($this->m);
        }
        public function addAction(){
            if($_SERVER['REQUEST_METHOD'] !='POST') return;
            parse_str($_POST['adv_data'], $adv_data);
            //p($adv_data['hosting']);
            $status=$this->addinputValidation($adv_data['hosting']);
            echo json_encode($status);
            
        }
        
        public function ajaxamenitiesAction(){
            
            if($_SERVER['REQUEST_METHOD'] !='POST') return;
            $name=$_POST['name'];
            $value=$_POST['value'];
            $row=new stdClass();
            $row->$name=$this->amenities($value);
            $status=new stdClass();
            if($this->validation===false){
                $status=$this->error;
            }else{ 
                $this->m->_db->setQuery("UPDATE advertisement SET $name='$value'");
                $this->m->_db->query();
                $status=true;
                //p($this->m->_db->query());
                }
            
            echo json_encode($status);
        }
        
        public function addinfoAction(){
            
            if($_SERVER['REQUEST_METHOD'] !='POST') return;
            $name=$_POST['name'];
            $value=$_POST['value'];
                    
            $row=new stdClass();
            $row->$name=$this->$name($value);
            $status=new stdClass();
            if($this->validation===false){
               // $this->error->main=("Не правильно заполнены поля");
                $status=$this->error;
            }else{ 
                $this->m->_db->setQuery("UPDATE advertisement SET $name='$value'");
                $this->m->_db->query();
                $status=true;
                //p($this->m->_db->query());
                }
            
            echo json_encode($status);
            //p($row);
            
        }
        private function bedrooms($input){
            if( $input>=0 && $input<11 ){
               return $input; 
            }else{
                $this->error->bedrooms=("Неправильный тип");
                $this->validation=false;
                return false ;
            }
        }
        private function beds($input){
            if( $input>0 && $input<17 ){
               return $input; 
            }else{
                $this->error->beds=("Неправильный тип");
                $this->validation=false;
                return false ;
            }
        }
        
         private function property_type_id($input){
            if( $input>0 && $input<34 ){
               return $input; 
            }else{
                $this->error->property_type_id=("Неправильный тип");
                $this->validation=false;
                return false ;
            }
        }
        
        private function bathrooms($input){
            if( $input>=0 && $input<9){
               return $input; 
            }else{
                $this->error->bathrooms=("Неправильный тип");
                $this->validation=false;
                return false ;
            }
        }
        private function amenities($input){
             if( $input==1 || $input==0){
                return $input;
            }else{
                $this->error->amenities=("Неправильный тип");
                $this->validation=false;
                return false ;
            }
        }
        private function currency($input){
            if(strlen($input)>3 || !$input){
                $this->error->currency=("Незаполненое поле");
                $this->validation=false;
                return false ;
            }else{return $input;}
        }
        private function price($input){
             if( !$input ||  is_int($input)){
                $this->error->prices=("Неправильный тип");
                $this->validation=false;
                return false ;
            }else{return $input;}
        }
        private function title($input){
            if(strlen($input)>254 || !$input){
                $this->error->title=("Незаполненое поле");
                $this->validation=false;
                return false ;
            }else{return $input;}
        }
        private function description($input){
            if(strlen($input)>1000 || !$input){
                $this->error->description=("Незаполненное поле");
                $this->validation=false;
                return false ;
            }else{return $input;}
        }
        
        
        
        private function addinputValidation($input){
            $row=new stdClass();
            $row->property_type_id=$this->property_type_id($input['property_type_id']);
            $row->person_capacity=$this->person_capacity($input['person_capacity']);
            $row->room_type_category=$this->room_type_category($input['room_type']);
            $row->city=$this->cityValidation($input['city']);
            $row->user_id=$this->m->_user->id;
            if($this->validation===false){
                $this->error->main=("Не правильно заполнены поля");
                return $this->error;
            }else{ return 'success';}
        }
        
        private function person_capacity($input){
            if($input>=16 || !$input ||  is_int($input)){
                $this->error->person_capacity=("Неправильный тип");
                $this->validation=false;
                return false ;
                
            }else{
               return $input; }
        }
        private function room_type_category($input){
            if(strlen($input)>254 || !$input){
                $this->error->room_type_category=("Неправильный тип");
                $this->validation=false;
                return false ;
            }else{return $input;}
        }
        private function cityValidation($input){
            if(strlen($input)>254 || !$input){
                $this->error->city=("Неправильный тип");
                $this->validation=false;
                return false ;
            }else{return $input;}
        }
}
        
 ?>